home *** CD-ROM | disk | FTP | other *** search
/ Ultimedia 1 / Ultimedia 1.iso / tools / sonstiges / fractal / fractal.guide (.txt) < prev    next >
Amigaguide Document  |  1994-07-04  |  27KB  |  501 lines

  1. @database Fractal.guide
  2. @node main "Fractal"
  3. Copyright 
  4. 1994 by Timothy B. Kreuzer.  All rights reserved.
  5. Version : 1.3
  6. Author: Tim Kreuzer (and the KreuzerSoft support team)
  7. Language: SAC/C V6.5
  8.       @{"Features" link features}
  9.       @{"Limitations" link limitations}
  10.       @{"Release Notes" link releasenotes}
  11.       @{"Notes from the Author" link notesfromtheauthor}
  12.       @{"Getting started with Fractal" link gettingstarted}
  13.       @{"Getting the most out of Fractal" link gettingthemost}
  14.       @{"Fractal starting points" link fractalstartingpoints}
  15.       @{"Special Plasma notes" link specialplasmanotes}
  16.       @{"Explanation of the Fractal user interface" link explanation}
  17.       @{"Icon Tooltypes" link icontooltypes}
  18.       @{"Credits" link credits}
  19.       @{"Contacting the Author" link contactingtheauthor}
  20.       @{"Legal Stuff" link legalstuff}
  21.       @{"KreuzerSoft Products" link kreuzersoftproducts}
  22. @endnode
  23. @node features "Features"
  24.       Opens on the default public screen (initially the Workbench)
  25.       Usable on any screen with at least 2 "free" pens
  26.       Avoids usage of all pens already "obtained" upon program start
  27.        (i.e., AmigaDOS 3.0 "Protected Pen" compliant)
  28.       Separate user interface and drawing windows
  29.       Resizable drawing window with point-and-click Zoom-In and
  30.        centering functions
  31.       Adjustable Zoom-Out function
  32.       Contents of drawing window can be saved to a standard IFF/ILBM file
  33.       Full GadTools Intuition interface
  34.       Supports the following types of fractals:
  35.          - Mandelbrot
  36.          - Julia Set
  37.          - Magnetism
  38.          - Lambda Exponential
  39.          - Lambda Cosine
  40.          - Biomorph
  41.          - Plasma
  42.       All math done in double precision floating point
  43.       Separate versions for:
  44.          - 68020 without FPU (stock A1200 and A4000/030)
  45.          - 68020 with FPU    (improved A1200 and A4000/030)
  46.          - 68040             (stock A4000/040)
  47.       "Smart" iconify function
  48.       Help text (displayed on screen banner) for the Zoom In and Center
  49.        actions
  50.       Recommended for use with my PaletteTool and PST programs(!)
  51.       Tested OK using the Enforcer
  52. @endnode
  53. @node limitations "Limitations"
  54.       Can only be used from the Workbench (start via Icon)
  55.       Requires AmigaDOS 3.0+ and the AGA chipset
  56.       FPU (68881/68882) highly recommended for maximum enjoyment!
  57.       Designed for use with higher-resolution screen modes (640x400 and
  58.        higher).  Note that this does NOT mean the program will not work
  59.        on lower-resolution screens.  What it DOES mean is that you may
  60.        find the programs windows take up a lot of screen "real estate"
  61.        on lower-resolution screens
  62.       For some reason, the program leaves 104 bytes allocated when it
  63.        terminates.  I have been unable to ascertain exactly where this
  64.        memory is not being freed
  65. @endnode
  66. @node releasenotes "Release Notes"
  67. -----------------
  68. Version 1.3 Notes
  69. -----------------
  70. 1) Completely reworked the user interface:
  71.       - Moved X-Y Coordinates to a separate window
  72.       - Added keyboard equivalents
  73.       - Controls window is now smaller than in previous versions
  74.       - Auto-redraw no longer happens when the draw window is resized
  75. 2) Added the "Plasma" fractal type
  76. 3) Added the Save functionality
  77. -----------------
  78. Version 1.2 Notes
  79. -----------------
  80. 1) Added a few optimizations which increased rendering speed
  81.    The Mandelbrot and Julia fractal types are especially faster than before!
  82. 2) Fixed bug where the Draw window's max dimensions were limited to 640x400.
  83.    Should now be whatever the default Public Screens dimensions are
  84. 3) Reworked entire user interface:
  85.    - Added "Pause" button/functionality
  86.    - Changed Zoom Out level-selection from slider gadget to cycle gadget
  87.    - Added "help text" in screen banner for Draw/Pause/ZoomIn/Center
  88.      functions
  89.    - Added "smart iconify" ("I" button) functionality for the Controls
  90.      window
  91.    - Added "About" button/functionality
  92. 4) Rendering will now automatically begin upon the following actions:
  93.    - Draw window resizing
  94.    - Zoom Out button selection
  95.    - After picking the "lower right-hand" corner of a Zoom In action
  96. -----------------
  97. Version 1.1 Notes
  98. -----------------
  99. 1) Added five new fractal types
  100. 2) Added the ability to cancel an in-progress "Draw" via the new "Stop"
  101.    button
  102. 3) Modified the existing "Center" function so that it operates more
  103.    "graphically" (via a cross-hair in the Fractal drawing window)
  104. 4) Added more gadget "disabling" during Zoom/Center functions to help
  105.    the user not get things confused
  106. 5) Slight reworking of the Control window layout
  107. 6) Corrected flaw in Control window which kept it from being Iconfied
  108.    or Menufied for those like me who use the PD programs bearing the
  109.    same names
  110. 7) Changed position of the "window resize" gadget in the Fractal drawing
  111.    window (MUCH nicer looking now!)
  112. @endnode
  113.                                                                     
  114. @node notesfromtheauthor "Notes from the Author"
  115. I hope you enjoy Fractal, and perhaps enjoyed the previous versions of
  116. this program.  Fractal is intended to be different that most other fractal
  117. types of programs - it does not open it's own screen, but relies upon you
  118. (the user) to have the (default Public) screen already setup
  119. This allows Fractal to be used from any potential screen mode, including
  120. those available from the various graphics cards now available
  121. Since many people now have "high color" Workbench screens, you may find
  122. that using Fractal in this environment is sufficient
  123. Remember that Fractal operates on the default Public Screen.  There are
  124. many utilities out there that allow you to make certain screens the
  125. default public screen.  My personal fave is my own "PST" program, which
  126. allows you to open a Public Screen at any supported resolution/depth, and
  127. to also make that Public Screen the default one
  128. I intentionally did NOT include a color-palette-control within Fractal.
  129. It seems to me that programs that operate on a Public Screen basis should
  130. have a centralized (i.e. separate) palette control (which is exactly
  131. what my PaletteTool program is for)
  132. You should DEFINITELY try and get your hands on my PaletteTool program,
  133. as it greatly simplies the method of setting up the colors on any default
  134. Public Screen
  135. @endnode
  136. @node gettingstarted "Getting started with Fractal"
  137. Just click on the Fractal icon
  138. Fractal will detect the number of "free" pens available on the default 
  139. Public Screen (initially the Workbench), and open it's control and drawing
  140. windows on this screen
  141. After both windows open, select the Draw button in the Controls window
  142. The start-up fractal type of Mandelbrot will then be drawn in the
  143. Fractal drawing window
  144. @endnode
  145. @node gettingthemost "Getting the most out of Fractal"
  146. 1) Read the documentation!
  147. 2) Run Fractal on higher resolution screens to get the most detailed images
  148.    Run Fractal on screens with higher "# of colors" to get the most
  149.    colorful images
  150.    You can adjust the resolution and "# of colors" used by Fractal by:
  151.                                                                      
  152.    a) Changing these limits for the Workbench screen (via the ScreenMode
  153.       program in your Preferences drawer)
  154.                                      
  155.    b) Creating a (default) Public Screen of any resolution/depth supported
  156.       by your Amiga using my PST (Public Screen Tool) program
  157.    The latter option (b) is recommended by the Author
  158. 3) Take control of the coloring of your Fractal images
  159.    The color pen scheme used by Fractal is identical to that used by
  160.    my PaletteTool program (in it's "Protect" palette mode)
  161.    PaletteTool can/should be used to "color" your Fractal image
  162.    Try using multiple color "spreads" for breathtaking Fractal images
  163.    BELIEVE ME - Playing around with the Fractal image's colors can result
  164.                 in a "blah" looking Fractal coming to life!
  165. 4) Use color cycling for truly exciting effects
  166.    Starting with V1.1, PaletteTool supports cycling of the Public Screen        palette in either direction and allows you to control the speed of        
  167.    the cycling 
  168. 5) Use the ability to size/shape the Fractal drawing window to your
  169.    advantage!
  170.    ----------------------------------------------------------------------
  171.    Keep the window small while you experiment.  Remember that the larger
  172.    the window, the longer (in general) it will take to render an image
  173.    You can always increase the window size once you've got a image worked
  174.    out at a smaller window size
  175.    ----------------------------------------------------------------------
  176.    Also, try wide-and-short and tall-and-thin window sizes for interesting
  177.    effects
  178. 6) Experiment!  
  179.    You can always hit the "Pause" and/or "Stop" buttons if your image is
  180.    either taking too long to draw or you want to free-up some CPU resources
  181.    for other things
  182.    If you really get "lost" in an image, you can always Zoom Out to "get
  183.    your bearings back"
  184.    Keep the Depth value low while you get confortable with a given fractal
  185.    type and how it's input values work
  186.    Keep the Depth value low if you are using the non-FPU version of Fractal,
  187.    so that you get more immediate gratification
  188.    Remember that the greater the Depth, the longer (and more detailed) 
  189.    the Fractal image (usually) will be.  Larger Depth values also cause
  190.    more colors to be used in the Fractal image
  191.    Modify the various parameters SLIGHTLY while you get a feel for how
  192.    they are affecting the fractal image.  This will help you avoid getting
  193.    frustrated
  194. @endnode
  195. @node fractalstartingpoints "Fractal starting points"
  196. 1) Mandelbrot
  197.    Keep the Depth value at-or-below 50
  198.    Increase Depth value as you Zoom In
  199. 2) Julia
  200.    Real Constant - try values around -110 
  201.    Imaginary Constant - try values around 25 
  202.    Keep the Depth value at-or-below 50
  203.    Increase Depth value as you Zoom In
  204. 3) Magnetism
  205.    Real Constant - try values around 400 
  206.    Imaginary Constant - try values around 0
  207.    Keep the Depth value at-or-below 50
  208. 4) LambdaExpZ (Lambda Exponent Z)
  209.    Lambda Constant - try values around 100
  210.    Keep the Depth value at-or-below 50
  211. 5) LambdaCosZ (Lambda Cosize Z)
  212.    Lambda Constant - try values around 100
  213.    Keep the Depth value at-or-below 50
  214.    Increase Depth value as you Zoom In
  215. 6) Biomorph
  216.    Real Constant - try values around 50 
  217.    Imaginary Constant - try values around 0 
  218.    Keep the Depth value at-or-below 50
  219. @endnode
  220. @node specialplasmanotes "Special Plasma notes"
  221. The "Plasma" fractal type operates differently that all the other
  222. types:
  223.    - "Plasma" is completely random in nature, and as such does
  224.      not have any X/Y-Coordinates.  In fact, the X/Y Coordinates
  225.      window is disabled when you select this fractal type
  226.    - The "Plasma" fractal is based completely on the existing screen
  227.      palette when the "Draw" button is selected.  Random colors (within
  228.      the screen palette) are selected as starting points.  The generation
  229.      of the "Plasma" image is based upon averaged colors in relation to
  230.      these starting points
  231.      Note that these averaged colors are obtained via "best match"
  232.      comparisons with the screens palette.  The current screen palette
  233.      is NOT modified by "Plasma"
  234.      Therefore, to obtain the BEST results, it is highly recommended that
  235.      you set up the screen palette with spreads of two to four colors
  236.      before starting the "Plasma" draw.  My PaletteTool program is very
  237.      handy for doing this
  238.    - The "Depth" slider does not relate to "iterative depth", but rather
  239.      the degree to which the color "randomization" will deviate.  For
  240.      example, if the Depth is set to 10, the randomized colors will deviate
  241.      only within 10 Red/Green/Blue values (out of 256 possible)
  242.      Assuming you've set up a screen palette with just a few color spreads,
  243.      I've found that values between 250 and 350 yield the best results
  244.    - Plasma fractals are excellent for use with color cycling.  For the
  245.      best results:
  246.         - Set up a spread between the first usable palette color and 
  247.           the last usable palette color (try using White (R/G/B = 255)
  248.           and Blue (B = 255; R/G = 0))
  249.         - Render the Plasma fractal
  250.         - Rotate the palette a few colors in either direction.  Create
  251.           another spread which eases the transition between the White and
  252.           Blue "boundry".  What you are trying to accomplish here is a
  253.           completely "smooth" transition of color within the palette
  254.         - Now cycle the palette
  255.      You can experiment with rendering the Plasma fractal with the palette
  256.      set to a spread between 2 colors (as indicated above), and then alter
  257.      the palette once the Plasma fractal is rendered
  258. As with all the other Fractal types, experiment to find the best results
  259. for you!
  260. @endnode
  261.      
  262. @node explanation "Explanation of the Fractal user interface"
  263. Fractal consists of three separate (but related) windows:
  264.     @{"Controls" link controlswindow}    - the primary user interface
  265.     @{"Coordinates" link coordinateswindow} - display and input of X/Y coordinate values
  266.     @{"Fractal" link fractalwindow}     - where all the drawing occurs
  267.                        this is also called the "Draw" window
  268. @endnode
  269. @node controlswindow "Controls Window"
  270. The Controls window contains the following items:
  271.         @{"Type" beep 0}               - Key equivalent is "t" or "T"
  272.                               Cycle gadget indicating the type of fractal
  273.                               to be drawn:
  274.                                    Mandelbrot
  275.                                    Julia      (Julia Set)
  276.                                    Magnetism
  277.                                    LambdaExpZ (Lambda Exponent Z)
  278.                                    LambdaCosZ (Lambda Cosize Z)
  279.                                    Biomorph
  280.                                    Plasma
  281.                               Change the type by left-clicking the gadget,
  282.                               or pressing the key equivalent ("t" or "T")
  283.     @{"Depth" beep 0}              - Slider gadget indicating the "iterative depth"
  284.                           limits of the drawing area
  285.                               The higher the Depth, the greater the detail
  286.                           The higher the Depth, the longer a Draw takes
  287.                               See "Special Plasma notes" regarding how the
  288.                               Depth control is interpreted for this fractal
  289.                               type
  290.     @{"RealC" beep 0}              - Slider gadget indicating the "Real number" 
  291.                               constant value used Julia, Magnetism, and 
  292.                               Biomorph fractal computation
  293.                               Slider value is the Real Number constant
  294.                               multiplied by 100.  For example, if the
  295.                               slider value is 134, the actual constant
  296.                               value used will be 1.34
  297.                               Disabled for all other fractal types
  298.     @{"ImagC" beep 0}              - Slider gadget indicating the "Imaginary
  299.                               number" constant value used Julia, Magnetism,
  300.                               and Biomorph fractal computation
  301.                               Slider value is the Imaginary Number constant
  302.                               multiplied by 100.  For example, if the
  303.                               slider value is 134, the actual constant
  304.                               value used will be 1.34
  305.                               Disabled for all other fractal types
  306.     @{"Lmbda" beep 0}              - Slider gadget indicating the "Lambda" constant
  307.                               value used in LambdaExpZ and LambdaCosZ
  308.                               fractal computation
  309.                               Slider value is the Lambda constant
  310.                               multiplied by 100.  For example, if the
  311.                               slider value is 134, the actual constant
  312.                               value used will be 1.34
  313.                               Disabled for all other fractal types
  314.         @{"Draw" beep 0}               - Key equivalent is "d" or "D"
  315.                               Renders a fractal of the selected "Type"
  316.                               the Fractal (Draw) window, based upon the
  317.                               parameters in the Controls window
  318.                                                                             
  319.         @{"Pause" beep 0}              - Key equivalent is "p" or "P"
  320.                               Pauses a "Draw" action
  321.                                                                             
  322.                               To resume a paused "Draw", press the "Draw"   
  323.                               button
  324.                               To terminate the current "Draw", press the
  325.                               "Stop" button
  326.                               
  327.         @{"Stop" beep 0}               - Key equivalent is "s" or "S"
  328.                               Stops an in-progress Draw action
  329.                               
  330.     @{"Center" beep 0}             - Key equivalent is "c" or "C"
  331.                               Allows you to establish a new center point
  332.                           for the Fractal display (i.e,. X/Y coords).
  333.                               A.K.A. Panning
  334.                               Disabled for the Plasma fractal type
  335.                           ----------------------------------------------
  336.                           To use: 1) Select the Center button
  337.                                   2) Move the pointer to the Fractal
  338.                                          draw window
  339.                                       3) Click and release the left mouse
  340.                                          button
  341.                                          This will cause a cross-hair to
  342.                                          appear in the window
  343.                                   4) Move the cross-hair with the 
  344.                                          pointer, until it is over the spot
  345.                                          on the image which you wish to be
  346.                                          the new "center"
  347.                                   5) Click the left mouse button to
  348.                                          "lock" the new center
  349.                               At this point, the X/Y coordinates will be
  350.                               updated and an automatic draw is initiated
  351.                           ----------------------------------------------
  352.                               
  353.     @{"X-Y" beep 0}                - Key equivalent is "x" or "X"
  354.                               Opens/Closes the Coordinates window
  355.                               Disabled for the Plasma fractal type
  356.     @{"Zoom In" beep 0}            - Key equivalent is "i" or "I"
  357.                               Allows you to zoom into (i.e., enlarge) a 
  358.                               rectangular area on the Draw window.
  359.                               Disabled for the Plasma fractal type
  360.                           ----------------------------------------------
  361.                           To use: 1) Select the Zoom In button
  362.                                   2) Move the pointer to the Fractal
  363.                                          draw window
  364.                                       3) Select (left mouse button) the
  365.                                          upper left corner of the area
  366.                                          you want to zoom into
  367.                                       4) Release the mouse button
  368.                                   5) Moving the pointer will cause a
  369.                                          dashed-line rectangle to appear
  370.                                      This rectangle is the area which
  371.                                          will be "zoomed into"
  372.                                   6) When the rectangle is the desired
  373.                                          size, click the left mouse button
  374.                                          to "lock" the zoom
  375.                               At this point, the X/Y coordinates will be
  376.                               updated and an automatic draw is initiated
  377.                           ----------------------------------------------
  378.         @{"Save" beep 0}               - Key equivalent is "v" or "V"
  379.                               Allows you to save an IFF/ILBM file containing
  380.                           the current Fractal (Draw) window image
  381.                               You are prompted to enter the location and
  382.                               name of the "save" file
  383.                            
  384.                               Select "Cancel" to cancel the save
  385.         @{"Zoom Out" beep 0}           - Key equivalent is "o" or "O"
  386.                               Allows you to zoom out of the currently
  387.                           defined X/Y coordinate
  388.                               As with Zoom In, the X/Y coordinates are
  389.                               updated, and an automatic draw is initiated
  390.                           The degree of "zoom out" can be controlled
  391.                           via the cycle gadget (1->10) immediately to
  392.                           the right of the "Zoom Out" button
  393.                               Disabled for the Plasma fractal Type
  394.                               
  395.         @{"I" beep 0}                  - Causes the Controls/Coordinates window(s) 
  396.                               to iconify
  397.                                                                          
  398.                               Once iconified, selecting the "Open" button
  399.                               will restore the window(s) to their previous
  400.                               size/position/state
  401.                                                                             
  402.                               Note that the iconfied window can be moved!
  403.                                                                            
  404.         @{"?" beep 0}                  - Opens an info requestor
  405.                                                        
  406. @endnode
  407. @node coordinateswindow "Coordinates Window"
  408. The Coordinates window contains the following items:
  409.         @{"Xmin" beep 0}
  410.         @{"Xmax" beep 0}
  411.         @{"Ymin" beep 0}
  412.         @{"Ymax" beep 0}               - Four string gadgets showing the numerical
  413.                           limits of the drawing area
  414.                               The X axis is horizontal
  415.                               (left->right = min->max)
  416.                               The Y axis is vertical
  417.                               (bottom->top = min->max)
  418.                               Can be used for direct entry of X/Y limits
  419.                               -----------------------------------------
  420.                               Also updated when using the Zoom In, Zoom
  421.                               Out, and Center functions
  422.                               -----------------------------------------
  423.                               --------------------------------------------
  424.                               After manually updating the X/Y limits, 
  425.                               select the Draw button to see the new image
  426.                               --------------------------------------------
  427.                               The program will not allow a min >= max, and
  428.                               a max <= min.  It also limits the ability
  429.                               to go way outside the X/Y values of the
  430.                               startup fractal image
  431. @endnode
  432. @node fractalwindow "Fractal (Draw) Window"
  433. The Fractal (Draw) window is:
  434.     - Where all fractal images are drawn
  435.     - Re-sizable only when a "Draw" is not in progress
  436.     - Erased when re-sized
  437. @endnode
  438. @node icontooltypes "Icon Tooltypes"
  439. Fractal recognizes the following Tooltypes within it's icon:
  440.    MAIN_X=<number>    -    The X-coordinate at which the Controls 
  441.                            window will initially open
  442.    MAIN_Y=<number>    -    The Y-coordinate at which the Controls
  443.                            window will initially open
  444.    DRAW_X=<number>    -    The X-coordinate at which the Fractal (Draw) 
  445.                            window will initially open
  446.    DRAW_Y=<number>    -    The Y-coordinate at which the Fractal (Draw)
  447.                            window will initially open
  448. @endnode
  449. @node credits "Credits"
  450. The GUI for Fractal was developed using Jan van den Baards' wonderful 
  451. GadToolsBox
  452. Thanks to the KreuzerSoft support team
  453. Thanks to the Nations Capital Amiga Users Group (NCAUG)
  454. Thanks to Commodore for the Amiga; a truly amazing machine!
  455. Major thanks to Dave at Buried Treasure in Rockville, MD
  456. *********************************************************************
  457. ** Please patronize your local Amiga dealers (like Dave), everyone **
  458. **                                                                 **
  459. ** Most of these people are NOT making tons of $$$$, so if you'd   **
  460. ** like to keep a local presence in your area, GO BUY SOMETHING!   **
  461. *********************************************************************
  462. @endnode
  463. @node contactingtheauthor "Contacting the Author"
  464. I'd really like to hear any feedback you have regarding Fractal
  465. I can be reached via any of the following methods:
  466.    - tkreuzer@delphi.com on the Internet
  467.    - T.KREUZER on GEnie
  468.    - via regular mail at: 6711A N. Washington Blvd.
  469.                           Arlington, VA  22213
  470. @endnode
  471. @node legalstuff "Legal Stuff"
  472. Fractal Version 1.3
  473. Copyright 
  474. 1994 by Timothy B. Kreuzer.  All rights reserved.
  475. You are hereby granted the freedom to distribute Fractal IF, AND ONLY
  476. IF the following rules are followed:
  477.         - This doc file MUST be kept with the executable(s), and must
  478.           include the above copyright notice.
  479.         - You may NOT charge ANY fee for this program, other than the basic
  480.           cost of distribution media and/or BBS access.  Of course if
  481.           you want to pursue selling this, feel free drop me a line.
  482. Fred Fish is hereby granted permission to include this program (and it's
  483. accompanying documentation) in his excellent collection of Amiga software.
  484. @endnode
  485. @node kreuzersoftproducts "KreuzerSoft Products"
  486. The following KreuzerSoft projects are (hopefully) available on a BBS
  487. near you:
  488.         PST V1.0a          - Public Screen utility for 3.0/AGA
  489.         PaletteTool V1.4   - Public screen palette program for 3.0/AGA
  490.         LyapunovSpace V1.2 - Lyapunov fractal program for 3.0/AGA
  491.         Terrain V1.1       - 3-D fractal terrain program for 3.0/AGA
  492.         FindColor V1.0a    - "Color-by-Name" selector for 3.0/AGA
  493.         Worm V1.1          - Port of SUN-Unix graphic toy for all Amigas
  494.         DLA                - Diffusion Limited Aggregation simulation for
  495.                              all Amigas
  496.         Jimi               - 8-color Jimi Hendrix image for your Workbench.
  497.         MemTool            - Memory monitor tool for the Workbench
  498.         Reminder V1.1      - Timed reminder tool for the Workbench
  499. All for the incredibly low, low price of FREE!
  500. @endnode
  501.